package com.it.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

/**
 * @Author: CaoYouGen
 * @DateTime: 2023/11/08/13:21
 * @注释: TODO
 **/
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests() // 授权请求
                // 匹配路径url的写法有三种
//               .regexMatchers("/student/**")
//               .antMatchers("/student/**")
                .mvcMatchers("/student/**") // 推荐这种， 匹配这个url
                // 判断 权限的五种
//               .hasAuthority( ) // 是否有单个权限
//               .access()
//               .hasRole() // 是否有单个角色
//               .hasAnyRole() // 是否有任意角色
                .hasAnyAuthority("student_add") // 拥有这个权限的用户可以访问 /student/** 这个url
                .mvcMatchers("/teacher/**") // 匹配url
                .hasAuthority("ROLE_teacher") //  拥有这个权限的用户可以访问 /teacher/** 这个url
                .anyRequest() // 任何请求
                .authenticated(); // 都需要登录，注意：没有配置mV℃匹配器的只要登录成功就可以访问
        http.formLogin().permitAll(); // 允许表单登录permit:允许
    }
}
